package cn.heycm.blog.api.console.paramcfg;

import cn.heycm.blog.api.console.paramcfg.command.SaveCfgCmd;
import cn.heycm.blog.api.console.paramcfg.query.CfgQry;
import cn.heycm.blog.api.console.paramcfg.vo.CfgVO;
import cn.heycm.blog.common.entity.constant.Constant;
import cn.heycm.blog.common.entity.page.Page;
import cn.heycm.blog.common.entity.result.Result;
import jakarta.validation.Valid;
import org.springframework.web.bind.annotation.*;

/**
 * 系统配置
 *
 * @author hey
 * @version 1.0
 * @since 2024/9/19 11:41
 */
@RequestMapping(Constant.API_CONSOLE + "/cfg")
public interface ParamCfgApi {

    /**
     * 保存配置
     *
     * @param cmd 保存配置命令
     * @return Result
     */
    @PostMapping
    Result<Object> save(@RequestBody @Valid SaveCfgCmd cmd);

    /**
     * 分页查询配置
     *
     * @param qry 查询条件
     * @return Result<Page < CfgVO>>
     */
    @GetMapping("/page")
    Result<Page<CfgVO>> page(CfgQry qry);

    /**
     * 根据配置别名查询配置
     *
     * @param alias 配置别名
     * @return Result<CfgVO>
     */
    @GetMapping
    Result<CfgVO> find(@RequestParam("alias") String alias);
}
